﻿/*=============================================================================
* File Name : Line3.cpp                          Ver : 1.00  Date : 2009-12-22
*
* Description :
*
*       3次元線分クラス.
*
* Author : yuuki tsuchida.
*============================================================================*/
#include "Line3.h"

namespace tglib
{

/*===========================================================================*/
/**
 * コンストラクタ．
 */
Line3::Line3()
{}

/*===========================================================================*/
/**
 * コンストラクタ．
 *
 * @param [in]  start 線分の始点．
 * @param [in]  end   線分の終点．
 */
Line3::Line3( Vector3& start, Vector3& end )
{
	initialize( start, end );
}

/*===========================================================================*/
/**
 * コンストラクタ．
 *
 * @param [in]  sX 始点のX座標．
 * @param [in]  sY 始点のY座標．
 * @param [in]  sZ 始点のZ座標．
 * @param [in]  eX 終点のX座標．
 * @param [in]  eY 終点のY座標．
 * @param [in]  eZ 終点のZ座標．
 */
Line3::Line3( float sX, float sY, float sZ, float eX, float eY, float eZ )
{
	initialize( sX, sY, sZ, eX, eY, eZ );
}

/*===========================================================================*/
/**
 * デストラクタ．
 */
Line3::~Line3()
{
}

/*===========================================================================*/
/**
 * 初期化．
 *
 * @param [in]  start 線分の始点．
 * @param [in]  end   線分の終点．
 */
void Line3::initialize( Vector3& start, Vector3& end )
{
	start_ = start;
	end_   = end;
}

/*===========================================================================*/
/**
 * 初期化．
 *
 * @param [in]  sX 始点のX座標．
 * @param [in]  sY 始点のY座標．
 * @param [in]  sZ 始点のZ座標．
 * @param [in]  eX 終点のX座標．
 * @param [in]  eY 終点のY座標．
 * @param [in]  eZ 終点のZ座標．
 */
void Line3::initialize( float sX, float sY, float sZ, float eX, float eY, float eZ )
{
	start_ = Vector3( sX, sY, sZ );
	end_   = Vector3( eX, eY, eZ );
}

/*===========================================================================*/
/**
 * 線分のベクトルを取得する．
 *
 * @return   線分のベクトル．
 */
Vector3 Line3::getVector()
{
	return ( end_ - start_ );
}

/*===========================================================================*/
/**
 * 線分の中心点を取得する．
 *
 * @return   線分の中心点．
 */
Vector3 Line3::getCenter()
{
	return ( ( start_ + end_ ) / 2 );
}

} // namespace tglib

/*========= End of File =====================================================*/
